// We must use "this" in these situation


#include <iostream>
#include <cstring>
using namespace std;


class Integer {
	public:
		void sentinfo( int i ) {	// condition one
			this->i = i;
		}

		void getinfo( ) {
			cout << i << endl;
			Print( this );		// condition three
		}

		Integer& increment( ) {		// condition two
			++i;
			return *this;
		}
	private:
		int i;
};

void Print( Integer* v ) {
	// ...
}


// desinger
// -------------------------------------------------------------------
// user


int main( void ) {
	Integer ix;
	ix.sentinfo( 1000 );
	ix.getinfo( );

	ix.increment( ).increment( ).increment( ); //Serial call
	ix.getinfo( );
	
	return 0;
}

